{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Understanding QMIX: Monotonic Value Function Factorization for MARL\n",
    "\n",
    "# Table of Contents\n",
    "\n",
    "- [Introduction: Cooperative MARL & Credit Assignment](#introduction)\n",
    "- [What is QMIX?](#what-is-qmix)\n",
    "  - [Core Idea: Value Function Factorization](#core-idea)\n",
    "  - [The Mixing Network](#the-mixing-network)\n",
    "  - [Monotonicity Constraint (IQL Principle)](#monotonicity-constraint-iql-principle)\n",
    "- [Why QMIX? Advantages](#why-qmix)\n",
    "- [Where and How QMIX is Used](#where-and-how-qmix-is-used)\n",
    "- [Mathematical Foundation of QMIX](#mathematical-foundation-of-qmix)\n",
    "  - [Individual Agent Q-Functions ($Q_i$)](#individual-agent-q-functions-qi)\n",
    "  - [Joint Action-Value Function ($Q_{tot}$)](#joint-action-value-function-q_tot)\n",
    "  - [Mixing Network Architecture & Monotonicity](#mixing-network-architecture--monotonicity)\n",
    "  - [Hypernetworks for State-Dependency](#hypernetworks-for-state-dependency)\n",
    "  - [Loss Function (TD Error on $Q_{tot}$)](#loss-function-td-error-on-q_tot)\n",
    "  - [Target Network](#target-network)\n",
    "- [Step-by-Step Explanation of QMIX](#step-by-step-explanation-of-qmix)\n",
    "- [Key Components of QMIX](#key-components-of-qmix)\n",
    "  - [Agent Networks ($Q_i$)](#agent-networks-qi)\n",
    "  - [Mixing Network](#mixing-network)\n",
    "  - [Hypernetworks](#hypernetworks)\n",
    "  - [Replay Buffer (Shared)](#replay-buffer-shared)\n",
    "  - [Target Networks (Agents & Mixer)](#target-networks-agents--mixer)\n",
    "  - [Action Selection (Decentralized, $\\epsilon$-greedy)](#action-selection-decentralized-epsilon-greedy)\n",
    "  - [Centralized Training](#centralized-training)\n",
    "  - [Hyperparameters](#hyperparameters)\n",
    "- [Practical Example: Custom Multi-Agent Grid World](#practical-example-custom-multi-agent-grid-world)\n",
    "  - [Environment Design Rationale](#environment-design-rationale)\n",
    "- [Setting up the Environment](#setting-up-the-environment)\n",
    "- [Creating the Custom Multi-Agent Environment](#creating-the-custom-multi-agent-environment)\n",
    "- [Implementing the QMIX Algorithm](#implementing-the-qmix-algorithm)\n",
    "  - [Defining the Agent Network (DRQN or MLP)](#defining-the-agent-network-drqn-or-mlp)\n",
    "  - [Defining the Mixing Network (with Hypernetworks)](#defining-the-mixing-network-with-hypernetworks)\n",
    "  - [Defining the Replay Memory](#defining-the-replay-memory)\n",
    "  - [Soft Update Function](#soft-update-function)\n",
    "  - [The QMIX Update Step](#the-qmix-update-step)\n",
    "- [Running the QMIX Algorithm](#running-the-qmix-algorithm)\n",
    "  - [Hyperparameter Setup](#hyperparameter-setup)\n",
    "  - [Initialization](#initialization)\n",
    "  - [Training Loop](#training-loop)\n",
    "- [Visualizing the Learning Process](#visualizing-the-learning-process)\n",
    "- [Analyzing the Learned Policies (Testing)](#analyzing-the-learned-policies-testing)\n",
    "- [Common Challenges and Extensions of QMIX](#common-challenges-and-extensions-of-qmix)\n",
    "- [Conclusion](#conclusion)\n",
    "\n",
    "## Introduction: Cooperative MARL & Credit Assignment\n",
    "\n",
    "In cooperative Multi-Agent Reinforcement Learning (MARL), multiple agents collaborate to achieve a common goal, typically receiving a shared team reward. A key challenge in these settings is **credit assignment**: how can an individual agent determine its contribution to the team's success or failure based only on the global reward signal? Simple independent learning (e.g., each agent running DQN) often fails because it treats other agents as part of the non-stationary environment and struggles with credit assignment.\n",
    "\n",
    "Value decomposition methods, like QMIX, provide a structured approach to address this challenge in cooperative MARL.\n",
    "\n",
    "## What is QMIX?\n",
    "\n",
    "QMIX (Q-value Mixing) is an **off-policy, value-based** MARL algorithm designed for cooperative tasks. It adheres to the **centralized training, decentralized execution** paradigm. Its central innovation is learning individual agent utility functions (represented as $Q_i$) and combining them through a **monotonic mixing network** to estimate the joint action-value function ($Q_{tot}$). \n",
    "\n",
    "### Core Idea: Value Function Factorization\n",
    "QMIX assumes that the joint action-value function $Q_{tot}$ for the team can be factorized or represented as a monotonic combination of individual agent utility functions $Q_i$. Each $Q_i(o_i, a_i)$ depends only on the local observation $o_i$ and action $a_i$ of agent $i$.\n",
    "\n",
    "### The Mixing Network\n",
    "A separate mixing network takes the values produced by each agent's individual network ($Q_1, ..., Q_N$) as input and outputs the estimated joint action-value $Q_{tot}$. Crucially, this mixing network also takes the global state $x$ as input, allowing the relationship between individual utilities and the team value to depend on the overall situation. This state information is typically used to generate the weights and biases of the mixing network layers via **hypernetworks**.\n",
    "\n",
    "### Monotonicity Constraint (IQL Principle)\n",
    "To ensure consistency between decentralized execution (where each agent picks its best action based on $Q_i$) and centralized training (optimizing $Q_{tot}$), QMIX enforces a monotonicity constraint: \n",
    "$$ \\frac{\\partial Q_{tot}}{\\partial Q_i} \\ge 0 \\quad \\forall i $$\n",
    "This means that increasing an individual agent's utility $Q_i$ must never decrease the total team value $Q_{tot}$. This guarantees that an agent maximizing its local $Q_i$ during execution contributes positively towards maximizing the global $Q_{tot}$. QMIX achieves this constraint structurally by ensuring the weights of the mixing network are non-negative.\n",
    "This constraint embodies the Individual-Global Max (IQL) principle: the joint action that maximizes $Q_{tot}$ is the same as the set of individual actions that maximize each agent's $Q_i$.\n",
    "\n",
    "## Why QMIX? Advantages\n",
    "\n",
    "- **Addresses Credit Assignment:** By learning individual $Q_i$ functions that contribute monotonically to $Q_{tot}$, it implicitly handles credit assignment better than methods using only the global reward.\n",
    "- **Scalability (Action Space):** Unlike methods learning a joint Q-function directly (which scales exponentially with the number of agents and actions), QMIX learns individual $Q_i$ functions and a mixing network, making it more scalable in terms of the joint action space.\n",
    "- **Decentralized Execution:** Agents can act using only their local $Q_i$ functions after training.\n",
    "- **State-Dependent Mixing:** Using the global state allows the mixing function to capture complex non-linear relationships between agent utilities that depend on the overall context.\n",
    "\n",
    "## Where and How QMIX is Used\n",
    "\n",
    "QMIX is a popular algorithm for cooperative MARL tasks, particularly those with discrete action spaces:\n",
    "\n",
    "1.  **StarCraft Multi-Agent Challenge (SMAC):** QMIX and its variants achieve strong performance on these benchmark micromanagement tasks.\n",
    "2.  **Coordination Games:** Grid worlds or other tasks requiring agents to synchronize or coordinate actions.\n",
    "3.  **Multi-Robot Cooperation:** Cooperative navigation, formation control.\n",
    "\n",
    "## Mathematical Foundation of QMIX\n",
    "\n",
    "### Individual Agent Q-Functions ($Q_i$)\n",
    "Each agent $i$ has a network (often a DRQN - Deep Recurrent Q-Network, if history is needed, or an MLP) that takes its local observation history $\\tau_i$ and outputs Q-values for each of its possible actions $a_i$: $Q_i(\\tau_i, a_i; \\theta_i)$. For simplicity with Markovian states, we use $Q_i(o_i, a_i; \\theta_i)$.\n",
    "\n",
    "### Joint Action-Value Function ($Q_{tot}$)\n",
    "The mixing network $f_{mix}$ combines the individual Q-values and global state $x$ to produce the joint action-value:\n",
    "$$ Q_{tot}(x, \\mathbf{a}) = f_{mix}(Q_1(o_1, a_1), ..., Q_N(o_N, a_N); x; \\phi_{mix}) $$\n",
    "where $\\mathbf{a} = (a_1, ..., a_N)$.\n",
    "\n",
    "### Mixing Network Architecture & Monotonicity\n",
    "The mixing network enforces $\\frac{\\partial Q_{tot}}{\\partial Q_i} \\ge 0$. This is typically achieved by:\n",
    "1.  Using non-negative weights in the mixing layers.\n",
    "2.  Using monotonic activation functions (like ReLU or linear layers where weights are constrained).\n",
    "The original QMIX paper generates the weights and biases of the mixing layers using separate hypernetworks conditioned on the global state.\n",
    "\n",
    "### Hypernetworks for State-Dependency\n",
    "To make the mixing state-dependent, hypernetworks are used. For example, for a mixing layer $Q_{tot} = W_1 \\mathbf{Q} + b_1$ (where $\\mathbf{Q} = [Q_1, ..., Q_N]^T$):\n",
    "- A hypernetwork takes global state $x$ as input and outputs the weight matrix $W_1$. The elements of $W_1$ are constrained to be non-negative (e.g., by taking `abs()` or using an ELU activation + 1).\n",
    "- Another hypernetwork takes $x$ and outputs the bias $b_1$. (The bias doesn't need a positivity constraint).\n",
    "This is repeated if the mixing network has multiple layers.\n",
    "\n",
    "### Loss Function (TD Error on $Q_{tot}$)\n",
    "QMIX uses off-policy data from a replay buffer $\\mathcal{D}$. The loss function aims to minimize the TD error for the joint action-value function, similar to DQN:\n",
    "$$ L(\\theta_1, ..., \\theta_N, \\phi_{mix}) = \\mathbb{E}_{(x, \\mathbf{a}, r, x') \\sim \\mathcal{D}} [ (y - Q_{tot}(x, \\mathbf{a}))^2 ] $$\n",
    "The target $y$ is calculated using the **target** agent networks ($Q'_i$) and the **target** mixing network ($f'_{mix}$):\n",
    "$$ y = r + \\gamma Q'_{tot}(x', \\mathbf{a}') $$ \n",
    "$$ \\text{where } \\mathbf{a}' = (a'_1, ..., a'_N) \\text{ with } a'_i = \\arg\\max_{a_i} Q'_i(o'_i, a_i) $$\n",
    "The gradient $\\nabla L$ flows back through the main mixing network and *all* main agent networks $Q_i$.\n",
    "\n",
    "### Target Network\n",
    "Target networks ($Q'_i$ for each agent, and a target mixing network $f'_{mix}$) are used for stability. They are updated periodically or via soft updates from the main networks.\n",
    "\n",
    "## Step-by-Step Explanation of QMIX\n",
    "\n",
    "1.  **Initialize**: For each agent $i$: Agent network $Q_i(\\theta_i)$, Target agent network $Q'_i(\\theta'_i)$ with $\\theta'_i \\leftarrow \\theta_i$.\n",
    "2.  **Initialize**: Mixing network $f_{mix}(\\phi_{mix})$, Target mixing network $f'_{mix}(\\phi'_{mix})$ with $\\phi'_{mix} \\leftarrow \\phi_{mix}$.\n",
    "3.  **Initialize**: Replay buffer $\\mathcal{D}$. Hyperparameters (buffer size, batch size, $\\gamma$, $\\tau$, learning rates, $\\epsilon$).\n",
    "4.  **For each episode**:\n",
    "    a.  Get initial joint observation $o=(o_1, ..., o_N)$ and global state $x$.\n",
    "    b.  **For each step $t$**:\n",
    "        i.   For each agent $i$, choose action $a_i$ using $\\epsilon$-greedy on $Q_i(o_i, \\cdot)$.\n",
    "        ii.  Execute joint action $\\mathbf{a}=(a_1, ..., a_N)$, observe shared reward $r$, next joint observation $o'$, next global state $x'$, and done flag $d$.\n",
    "        iii. Store transition $(o, \\mathbf{a}, r, o', x, x', d)$ in $\\mathcal{D}$.\n",
    "        iv.  $o \\leftarrow o', x \\leftarrow x'$.\n",
    "        v.   **Update Step (if buffer has enough samples)**:\n",
    "            1.  Sample mini-batch of $B$ transitions from $\\mathcal{D}$.\n",
    "            2.  For each transition $j$ in the batch:\n",
    "                - Calculate target $Q'_{tot,j}$:\n",
    "                    - For each agent $i$, find $a'_{i,j} = \\arg\\max_{a} Q'_{i}(o'_{i,j}, a)$.\n",
    "                    - Get $Q'_{i,j} = Q'_{i}(o'_{i,j}, a'_{i,j})$.\n",
    "                    - Compute $Q'_{tot,j} = f'_{mix}(Q'_{1,j}, ..., Q'_{N,j}; x'_{j})$.\n",
    "                - Compute TD target $y_j = r_j + \\gamma (1-d_j) Q'_{tot,j}$.\n",
    "                - Calculate current $Q_{tot,j}$:\n",
    "                    - For each agent $i$, get $Q_{i,j} = Q_{i}(o_{i,j}, a_{i,j})$ (using action $a_{i,j}$ from buffer).\n",
    "                    - Compute $Q_{tot,j} = f_{mix}(Q_{1,j}, ..., Q_{N,j}; x_{j})$.\n",
    "            3.  Compute loss $L = \\frac{1}{B} \\sum_j (y_j - Q_{tot,j})^2$.\n",
    "            4.  Perform gradient descent step on $L$ wrt $\\theta_1, ..., \\theta_N, \\phi_{mix}$.\n",
    "            5.  Update target networks ($Q'_i$ and $f'_{mix}$) via soft updates (or periodic hard updates).\n",
    "        vi.  If done, break step loop.\n",
    "5.  **Repeat**: Until convergence.\n",
    "\n",
    "## Key Components of QMIX\n",
    "\n",
    "### Agent Networks ($Q_i$)\n",
    "- Learn individual utility/Q-functions based on local observations.\n",
    "- Can be MLPs or DRQNs (if history matters).\n",
    "\n",
    "### Mixing Network\n",
    "- Takes individual $Q_i$ values and global state $x$ to produce $Q_{tot}$.\n",
    "- Enforces monotonicity constraint ($\\partial Q_{tot} / \\partial Q_i \\ge 0$).\n",
    "\n",
    "### Hypernetworks\n",
    "- Generate the weights/biases of the mixing network conditioned on the global state $x$.\n",
    "- Ensures mixing is state-dependent and weights are non-negative.\n",
    "\n",
    "### Replay Buffer (Shared)\n",
    "- Stores joint transitions for off-policy learning.\n",
    "\n",
    "### Target Networks (Agents & Mixer)\n",
    "- Stabilize TD target calculation.\n",
    "\n",
    "### Action Selection (Decentralized, $\\epsilon$-greedy)\n",
    "- Each agent acts greedily (or $\\epsilon$-greedily) based *only* on its own $Q_i$.\n",
    "\n",
    "### Centralized Training\n",
    "- Updates use joint information (global state $x$, all $Q_i$ values) via the mixing network.\n",
    "\n",
    "### Hyperparameters\n",
    "- Standard RL params ($\\gamma$, $\\epsilon$, learning rates, $\\tau$, buffer/batch size).\n",
    "- Mixing network architecture, hypernetwork architecture.\n",
    "\n",
    "## Practical Example: Custom Multi-Agent Grid World\n",
    "\n",
    "### Environment Design Rationale\n",
    "The cooperative 2-agent grid world is suitable for demonstrating QMIX's value decomposition in a discrete setting.\n",
    "\n",
    "**Environment Details:**\n",
    "- **Global State ($x$):** Concatenation of normalized positions of both agents and both goals `(r1, c1, r2, c2, g1r, g1c, g2r, g2c)`.\n",
    "- **Local Observation ($o_i$):** Agent $i$'s normalized position, other agent's normalized position, agent $i$'s goal normalized position `(self_r, self_c, other_r, other_c, goal_i_r, goal_i_c)`.\n",
    "- **Actions/Rewards:** As defined previously.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Setting up the Environment\n",
    "\n",
    "Import libraries."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using device: cpu\n"
     ]
    }
   ],
   "source": [
    "# Import necessary libraries\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import random\n",
    "import math\n",
    "from collections import namedtuple, deque, defaultdict\n",
    "from itertools import count\n",
    "from typing import List, Tuple, Dict, Optional, Callable, Any\n",
    "import copy\n",
    "\n",
    "# Import PyTorch\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.optim as optim\n",
    "import torch.nn.functional as F\n",
    "\n",
    "# Set up device\n",
    "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "print(f\"Using device: {device}\")\n",
    "\n",
    "# Set random seeds\n",
    "seed = 42\n",
    "random.seed(seed)\n",
    "np.random.seed(seed)\n",
    "torch.manual_seed(seed)\n",
    "if torch.cuda.is_available():\n",
    "    torch.cuda.manual_seed_all(seed)\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Creating the Custom Multi-Agent Environment\n",
    "\n",
    "Using the `MultiAgentGridEnv` from MADDPG notebook, adding a method to get the global state."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "class MultiAgentGridEnv:\n",
    "    \"\"\"\n",
    "    Simple 2-Agent Cooperative Grid World.\n",
    "    Agents must reach their respective goals simultaneously.\n",
    "    Observation includes agent positions and goal positions.\n",
    "    Rewards are shared.\n",
    "    \"\"\"\n",
    "    def __init__(self, size: int = 5, num_agents: int = 2):\n",
    "        self.size: int = size\n",
    "        self.num_agents: int = num_agents\n",
    "        self.action_dim: int = 4 # U, D, L, R\n",
    "        self.action_map: Dict[int, Tuple[int, int]] = {0: (-1, 0), 1: (1, 0), 2: (0, -1), 3: (0, 1)}\n",
    "        self.actions: List[int] = list(self.action_map.keys())\n",
    "\n",
    "        # Define fixed start and goal positions for simplicity\n",
    "        self.start_positions: List[Tuple[int, int]] = [(0, 0), (size - 1, size - 1)]\n",
    "        self.goal_positions: List[Tuple[int, int]] = [(size - 1, 0), (0, size - 1)]\n",
    "        if num_agents != 2:\n",
    "             raise NotImplementedError(\"Currently supports only 2 agents.\")\n",
    "\n",
    "        self.agent_positions: List[Tuple[int, int]] = list(self.start_positions)\n",
    "\n",
    "        # Observation space for agent i: (self_r, self_c, other_r, other_c, goal_i_r, goal_i_c)\n",
    "        # Normalized between 0 and 1\n",
    "        self.observation_dim_per_agent: int = 6 \n",
    "        self.max_coord = float(self.size - 1)\n",
    "\n",
    "    def _normalize_pos(self, pos: Tuple[int, int]) -> Tuple[float, float]:\n",
    "        \"\"\" Normalizes a grid position. \"\"\"\n",
    "        r, c = pos\n",
    "        return (r / self.max_coord, c / self.max_coord) if self.max_coord > 0 else (0.0, 0.0)\n",
    "        \n",
    "    def _get_observation(self, agent_id: int) -> np.ndarray:\n",
    "        \"\"\" Get normalized local observation for a specific agent. \"\"\"\n",
    "        obs = []\n",
    "        # Self position\n",
    "        self_pos_norm = self._normalize_pos(self.agent_positions[agent_id])\n",
    "        obs.extend(self_pos_norm)\n",
    "        # Other agent position\n",
    "        other_id = 1 - agent_id\n",
    "        other_pos_norm = self._normalize_pos(self.agent_positions[other_id])\n",
    "        obs.extend(other_pos_norm)\n",
    "        # Self goal position\n",
    "        goal_pos_norm = self._normalize_pos(self.goal_positions[agent_id])\n",
    "        obs.extend(goal_pos_norm)\n",
    "        return np.array(obs, dtype=np.float32)\n",
    "\n",
    "    def get_joint_observation(self) -> List[np.ndarray]:\n",
    "        \"\"\" Get list of observations for all agents. \"\"\"\n",
    "        return [self._get_observation(i) for i in range(self.num_agents)]\n",
    "        \n",
    "    def reset(self) -> List[np.ndarray]:\n",
    "        \"\"\" Resets environment, returns list of initial observations. \"\"\"\n",
    "        self.agent_positions = list(self.start_positions)\n",
    "        return self.get_joint_observation()\n",
    "\n",
    "    def step(self, actions: List[int]) -> Tuple[List[np.ndarray], List[float], bool]:\n",
    "        \"\"\"\n",
    "        Performs one step for all agents.\n",
    "        \n",
    "        Parameters:\n",
    "        - actions (List[int]): List of actions, one for each agent.\n",
    "        \n",
    "        Returns:\n",
    "        - Tuple[List[np.ndarray], List[float], bool]: \n",
    "            - List of next observations for each agent.\n",
    "            - List of rewards for each agent (shared reward).\n",
    "            - Global done flag.\n",
    "        \"\"\"\n",
    "        if len(actions) != self.num_agents:\n",
    "            raise ValueError(f\"Expected {self.num_agents} actions, got {len(actions)}\")\n",
    "            \n",
    "        next_positions: List[Tuple[int, int]] = list(self.agent_positions) # Start with current\n",
    "        total_dist_reduction = 0.0\n",
    "        hit_wall_penalty = 0.0\n",
    "\n",
    "        for i in range(self.num_agents):\n",
    "            current_pos = self.agent_positions[i]\n",
    "            if current_pos == self.goal_positions[i]: # Agent already at goal, doesn't move\n",
    "                continue \n",
    "                \n",
    "            action = actions[i]\n",
    "            dr, dc = self.action_map[action]\n",
    "            next_r, next_c = current_pos[0] + dr, current_pos[1] + dc\n",
    "            \n",
    "            # Check bounds and update position\n",
    "            if 0 <= next_r < self.size and 0 <= next_c < self.size:\n",
    "                next_positions[i] = (next_r, next_c)\n",
    "            else:\n",
    "                hit_wall_penalty -= 0.5 # Penalty for hitting wall\n",
    "                next_positions[i] = current_pos # Stay in place\n",
    "                \n",
    "        # Simple collision handling: if agents move to same spot, they bounce back\n",
    "        if self.num_agents == 2 and next_positions[0] == next_positions[1]:\n",
    "            next_positions = list(self.agent_positions) # Revert to previous positions\n",
    "            hit_wall_penalty -= 0.5 # Treat as a penalty (like hitting a wall)\n",
    "            \n",
    "        self.agent_positions = next_positions\n",
    "\n",
    "        # Calculate reward and done flag\n",
    "        done = all(self.agent_positions[i] == self.goal_positions[i] for i in range(self.num_agents))\n",
    "        \n",
    "        if done:\n",
    "            reward = 10.0 # Large reward for cooperative success\n",
    "        else:\n",
    "            # Distance-based reward (negative sum of distances to goals)\n",
    "            dist_reward = 0.0\n",
    "            for i in range(self.num_agents):\n",
    "                dist = abs(self.agent_positions[i][0] - self.goal_positions[i][0]) + \\\n",
    "                       abs(self.agent_positions[i][1] - self.goal_positions[i][1])\n",
    "                dist_reward -= dist * 0.1 # Scaled negative distance\n",
    "            \n",
    "            reward = -0.05 + dist_reward + hit_wall_penalty # Small step penalty + distance + wall penalty\n",
    "\n",
    "        next_observations = self.get_joint_observation()\n",
    "        # Shared reward\n",
    "        rewards = [reward] * self.num_agents \n",
    "        \n",
    "        return next_observations, rewards, done"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "class MultiAgentGridEnv_QMIX(MultiAgentGridEnv):\n",
    "    \"\"\" Adds global state method to the MA Grid Env. \"\"\"\n",
    "    def __init__(self, size: int = 5, num_agents: int = 2):\n",
    "        super().__init__(size=size, num_agents=num_agents)\n",
    "        # Global state: (r1,c1, r2,c2, g1r,g1c, g2r,g2c) normalized\n",
    "        self.global_state_dim = self.num_agents * 4 \n",
    "\n",
    "    def get_global_state(self) -> np.ndarray:\n",
    "        \"\"\" Returns the normalized global state. \"\"\"\n",
    "        state = []\n",
    "        # Agent positions\n",
    "        for i in range(self.num_agents):\n",
    "            state.extend(self._normalize_pos(self.agent_positions[i]))\n",
    "        # Goal positions\n",
    "        for i in range(self.num_agents):\n",
    "            state.extend(self._normalize_pos(self.goal_positions[i]))\n",
    "        return np.array(state, dtype=np.float32)\n",
    "        \n",
    "    def reset_qmix(self) -> Tuple[List[np.ndarray], np.ndarray]:\n",
    "        \"\"\" Resets and returns list of obs and global state. \"\"\"\n",
    "        obs_list = super().reset()\n",
    "        global_state = self.get_global_state()\n",
    "        return obs_list, global_state\n",
    "\n",
    "    def step_qmix(self, actions: List[int]) -> Tuple[List[np.ndarray], np.ndarray, float, bool]:\n",
    "        \"\"\" Steps env, returns list of obs, global state, shared reward, done. \"\"\"\n",
    "        next_obs_list, rewards, done = super().step(actions)\n",
    "        next_global_state = self.get_global_state()\n",
    "        shared_reward = rewards[0] # Use the shared reward\n",
    "        return next_obs_list, next_global_state, shared_reward, done"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Instantiate and test the environment."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "QMIX Env Size: 5x5\n",
      "Num Agents: 2\n",
      "Obs Dim per Agent: 6\n",
      "Global State Dim: 8\n",
      "Action Dim per Agent: 4\n",
      "Initial Obs List: [array([0., 0., 1., 1., 1., 0.], dtype=float32), array([1., 1., 0., 0., 0., 1.], dtype=float32)]\n",
      "Initial Global State: [0. 0. 1. 1. 1. 0. 0. 1.]\n"
     ]
    }
   ],
   "source": [
    "qmix_env = MultiAgentGridEnv_QMIX(size=5, num_agents=2)\n",
    "obs_list_qmix, global_state_qmix = qmix_env.reset_qmix()\n",
    "n_agents_qmix = qmix_env.num_agents\n",
    "obs_dim_qmix = qmix_env.observation_dim_per_agent\n",
    "global_state_dim_qmix = qmix_env.global_state_dim\n",
    "action_dim_qmix = qmix_env.action_dim\n",
    "\n",
    "print(f\"QMIX Env Size: {qmix_env.size}x{qmix_env.size}\")\n",
    "print(f\"Num Agents: {n_agents_qmix}\")\n",
    "print(f\"Obs Dim per Agent: {obs_dim_qmix}\")\n",
    "print(f\"Global State Dim: {global_state_dim_qmix}\")\n",
    "print(f\"Action Dim per Agent: {action_dim_qmix}\")\n",
    "print(f\"Initial Obs List: {obs_list_qmix}\")\n",
    "print(f\"Initial Global State: {global_state_qmix}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Implementing the QMIX Algorithm\n",
    "\n",
    "### Defining the Agent Network (DRQN or MLP)\n",
    "\n",
    "Outputs $Q_i(o_i, a)$ for all actions $a$. We'll use a simple MLP here. For environments with partial observability, a DRQN (Deep Recurrent Q-Network) using an LSTM or GRU would be more standard."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "class AgentQNetwork(nn.Module):\n",
    "    \"\"\" Individual Agent Q-Network for QMIX. Outputs Q-values for all actions. \"\"\"\n",
    "    def __init__(self, obs_dim: int, action_dim: int):\n",
    "        super(AgentQNetwork, self).__init__()\n",
    "        self.fc1 = nn.Linear(obs_dim, 64) # Smaller network for individual agent\n",
    "        self.fc2 = nn.Linear(64, 64)\n",
    "        self.fc3 = nn.Linear(64, action_dim) # Output Q-value for each action\n",
    "\n",
    "    def forward(self, obs: torch.Tensor) -> torch.Tensor:\n",
    "        \"\"\" Maps observation to Q-values for all actions. \"\"\"\n",
    "        x = F.relu(self.fc1(obs))\n",
    "        x = F.relu(self.fc2(x))\n",
    "        q_values = self.fc3(x)\n",
    "        return q_values"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Defining the Mixing Network (with Hypernetworks)\n",
    "\n",
    "Combines individual $Q_i$ values monotonically, conditioned on the global state."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "class QMixer(nn.Module):\n",
    "    \"\"\" Mixing Network for QMIX with Hypernetworks. \"\"\"\n",
    "    def __init__(self, num_agents: int, global_state_dim: int, mixing_embed_dim: int = 32):\n",
    "        super(QMixer, self).__init__()\n",
    "        self.num_agents = num_agents\n",
    "        self.state_dim = global_state_dim\n",
    "        self.embed_dim = mixing_embed_dim\n",
    "\n",
    "        # Hypernetwork to generate weights for the first mixing layer\n",
    "        # Input: global_state, Output: weights shaped (num_agents * embed_dim)\n",
    "        self.hyper_w1 = nn.Sequential(\n",
    "            nn.Linear(self.state_dim, 64),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(64, self.num_agents * self.embed_dim)\n",
    "        )\n",
    "        # Hypernetwork for bias of the first mixing layer\n",
    "        # Input: global_state, Output: bias shaped (embed_dim)\n",
    "        self.hyper_b1 = nn.Linear(self.state_dim, self.embed_dim)\n",
    "\n",
    "        # Hypernetwork for the second mixing layer (optional, can be single layer)\n",
    "        # Input: global_state, Output: weights shaped (embed_dim * 1)\n",
    "        self.hyper_w2 = nn.Sequential(\n",
    "            nn.Linear(self.state_dim, 64),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(64, self.embed_dim) # Output has size embed_dim\n",
    "        )\n",
    "        # Hypernetwork for the final bias (scalar)\n",
    "        # Input: global_state, Output: bias (scalar)\n",
    "        self.hyper_b2 = nn.Sequential(\n",
    "            nn.Linear(self.state_dim, 32),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(32, 1)\n",
    "        )\n",
    "\n",
    "    def forward(self, agent_qs: torch.Tensor, global_state: torch.Tensor) -> torch.Tensor:\n",
    "        \"\"\"\n",
    "        Mixes individual agent Q-values to produce Q_tot.\n",
    "        \n",
    "        Parameters:\n",
    "        - agent_qs (torch.Tensor): Tensor of individual Q-values, shape (batch_size, num_agents).\n",
    "        - global_state (torch.Tensor): Tensor of global states, shape (batch_size, global_state_dim).\n",
    "        \n",
    "        Returns:\n",
    "        - torch.Tensor: Estimated Q_tot values, shape (batch_size, 1).\n",
    "        \"\"\"\n",
    "        batch_size = agent_qs.size(0)\n",
    "        # Reshape agent_qs to (batch_size, 1, num_agents) for batch matrix multiplication\n",
    "        agent_qs_reshaped = agent_qs.view(batch_size, 1, self.num_agents)\n",
    "\n",
    "        # --- First Mixing Layer --- \n",
    "        # Generate weights and ensure non-negativity\n",
    "        w1 = torch.abs(self.hyper_w1(global_state)) # abs() ensures non-negative weights\n",
    "        # Reshape weights to (batch_size, num_agents, embed_dim)\n",
    "        w1 = w1.view(batch_size, self.num_agents, self.embed_dim)\n",
    "        \n",
    "        # Generate bias\n",
    "        b1 = self.hyper_b1(global_state)\n",
    "        # Reshape bias to (batch_size, 1, embed_dim)\n",
    "        b1 = b1.view(batch_size, 1, self.embed_dim)\n",
    "\n",
    "        # Apply first layer: Q_hidden = Q_agents * W1 + b1\n",
    "        hidden = F.elu(torch.bmm(agent_qs_reshaped, w1) + b1)\n",
    "        # shape: (batch_size, 1, embed_dim)\n",
    "\n",
    "        # --- Second Mixing Layer --- \n",
    "        # Generate weights and ensure non-negativity\n",
    "        w2 = torch.abs(self.hyper_w2(global_state))\n",
    "        # Reshape weights to (batch_size, embed_dim, 1)\n",
    "        w2 = w2.view(batch_size, self.embed_dim, 1)\n",
    "        \n",
    "        # Generate bias\n",
    "        b2 = self.hyper_b2(global_state)\n",
    "        # Reshape bias to (batch_size, 1, 1)\n",
    "        b2 = b2.view(batch_size, 1, 1)\n",
    "\n",
    "        # Apply second layer: Q_tot = Q_hidden * W2 + b2\n",
    "        q_tot = torch.bmm(hidden, w2) + b2\n",
    "        # shape: (batch_size, 1, 1)\n",
    "\n",
    "        return q_tot.view(batch_size, 1) # Return shape (batch_size, 1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Defining the Replay Memory\n",
    "\n",
    "Stores joint transitions, including global state."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define transition structure for QMIX buffer\n",
    "QMIXTransition = namedtuple('QMIXTransition', \n",
    "                            ('obs_list', 'actions_list', 'reward', \n",
    "                             'next_obs_list', 'global_state', \n",
    "                             'next_global_state', 'done'))\n",
    "\n",
    "class QMIXReplayBuffer:\n",
    "    def __init__(self, capacity: int):\n",
    "        self.memory = deque([], maxlen=capacity)\n",
    "\n",
    "    def push(self, obs_list: List[np.ndarray], actions_list: List[int], reward: float, \n",
    "               next_obs_list: List[np.ndarray], global_state: np.ndarray,\n",
    "               next_global_state: np.ndarray, done: bool) -> None:\n",
    "        \"\"\" Saves a joint transition. \"\"\"\n",
    "        # Store as numpy arrays or primitive types\n",
    "        self.memory.append(QMIXTransition(obs_list, actions_list, reward, \n",
    "                                          next_obs_list, global_state,\n",
    "                                          next_global_state, done))\n",
    "\n",
    "    def sample(self, batch_size: int) -> Optional[QMIXTransition]:\n",
    "        \"\"\" Samples a batch of experiences and converts to tensors. \"\"\"\n",
    "        if len(self.memory) < batch_size:\n",
    "            return None\n",
    "        \n",
    "        transitions = random.sample(self.memory, batch_size)\n",
    "        \n",
    "        # Unzip and convert to numpy arrays first for easier stacking\n",
    "        obs_l, act_l, rew_l, next_obs_l, gs_l, next_gs_l, done_l = zip(*transitions)\n",
    "        \n",
    "        num_agents = len(obs_l[0])\n",
    "        obs_dim = obs_l[0][0].shape[0]\n",
    "        global_dim = gs_l[0].shape[0]\n",
    "        \n",
    "        # Stack observations: list of lists -> (batch, agent, dim)\n",
    "        obs_arr = np.array(obs_l, dtype=np.float32).reshape(batch_size, num_agents, obs_dim)\n",
    "        next_obs_arr = np.array(next_obs_l, dtype=np.float32).reshape(batch_size, num_agents, obs_dim)\n",
    "        \n",
    "        # Stack actions, rewards, dones, global states\n",
    "        act_arr = np.array(act_l, dtype=np.int64) # Action indices\n",
    "        rew_arr = np.array(rew_l, dtype=np.float32)\n",
    "        gs_arr = np.array(gs_l, dtype=np.float32).reshape(batch_size, global_dim)\n",
    "        next_gs_arr = np.array(next_gs_l, dtype=np.float32).reshape(batch_size, global_dim)\n",
    "        done_arr = np.array(done_l, dtype=np.float32)\n",
    "        \n",
    "        # Convert to tensors\n",
    "        return QMIXTransition(\n",
    "            torch.from_numpy(obs_arr).to(device),\n",
    "            torch.from_numpy(act_arr).to(device),\n",
    "            torch.from_numpy(rew_arr).unsqueeze(1).to(device),\n",
    "            torch.from_numpy(next_obs_arr).to(device),\n",
    "            torch.from_numpy(gs_arr).to(device),\n",
    "            torch.from_numpy(next_gs_arr).to(device),\n",
    "            torch.from_numpy(done_arr).unsqueeze(1).to(device)\n",
    "        )\n",
    "\n",
    "    def __len__(self) -> int:\n",
    "        return len(self.memory)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Soft Update Function\n",
    "\n",
    "Standard soft update."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "def soft_update(target_net: nn.Module, main_net: nn.Module, tau: float) -> None:\n",
    "    for target_param, main_param in zip(target_net.parameters(), main_net.parameters()):\n",
    "        target_param.data.copy_(tau * main_param.data + (1.0 - tau) * target_param.data)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### The QMIX Update Step\n",
    "\n",
    "Function to perform the centralized QMIX update."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def update_qmix(memory: QMIXReplayBuffer,\n",
    "                  batch_size: int,\n",
    "                  agent_networks: List[AgentQNetwork],\n",
    "                  target_agent_networks: List[AgentQNetwork],\n",
    "                  mixer: QMixer,\n",
    "                  target_mixer: QMixer,\n",
    "                  optimizer: optim.Optimizer, # Single optimizer for all agent + mixer params\n",
    "                  gamma: float,\n",
    "                  tau: float,\n",
    "                  num_agents: int,\n",
    "                  action_dim: int) -> float:\n",
    "    \"\"\"\n",
    "    Performs one QMIX update step for all agents and the mixer.\n",
    "    \n",
    "    Returns:\n",
    "    - float: The TD loss value.\n",
    "    \"\"\"\n",
    "    if len(memory) < batch_size:\n",
    "        return 0.0\n",
    "\n",
    "    batch = memory.sample(batch_size)\n",
    "    if batch is None: return 0.0\n",
    "    \n",
    "    obs_b, act_b, rew_b, next_obs_b, gs_b, next_gs_b, done_b = batch\n",
    "    # obs_b shape: (batch_size, num_agents, obs_dim)\n",
    "    # act_b shape: (batch_size, num_agents) -> action indices\n",
    "    # rew_b shape: (batch_size, 1)\n",
    "    # gs_b shape: (batch_size, global_state_dim)\n",
    "    # done_b shape: (batch_size, 1)\n",
    "\n",
    "    # --- Calculate Target Q_tot' --- \n",
    "    target_agent_qs_list = []\n",
    "    with torch.no_grad():\n",
    "        for i in range(num_agents):\n",
    "            # Get Q-values for next observations from target agent network\n",
    "            target_q_values_next = target_agent_networks[i](next_obs_b[:, i, :])\n",
    "            # Select action that maximizes target Q_i\n",
    "            max_actions_next = target_q_values_next.argmax(dim=1, keepdim=True) # Shape: (batch_size, 1)\n",
    "            # Get the Q-value corresponding to that max action\n",
    "            max_target_q_next = torch.gather(target_q_values_next, 1, max_actions_next)\n",
    "            target_agent_qs_list.append(max_target_q_next)\n",
    "        \n",
    "        # Stack target agent Qs: (batch_size, num_agents)\n",
    "        target_agent_qs = torch.cat(target_agent_qs_list, dim=1)\n",
    "        \n",
    "        # Calculate target Q_tot' using target mixer\n",
    "        q_tot_target = target_mixer(target_agent_qs, next_gs_b)\n",
    "        \n",
    "        # Calculate TD target y = r + gamma * Q_tot' * (1 - done)\n",
    "        y = rew_b + gamma * (1.0 - done_b) * q_tot_target\n",
    "\n",
    "    # --- Calculate Current Q_tot --- \n",
    "    current_agent_qs_list = []\n",
    "    for i in range(num_agents):\n",
    "        # Get Q-values for current observations from main agent network\n",
    "        q_values_current = agent_networks[i](obs_b[:, i, :])\n",
    "        # Select the Q-value corresponding to the action *taken* in the buffer\n",
    "        action_i = act_b[:, i].unsqueeze(1) # Shape: (batch_size, 1)\n",
    "        q_current_i = torch.gather(q_values_current, 1, action_i)\n",
    "        current_agent_qs_list.append(q_current_i)\n",
    "        \n",
    "    # Stack current agent Qs: (batch_size, num_agents)\n",
    "    current_agent_qs = torch.cat(current_agent_qs_list, dim=1)\n",
    "    \n",
    "    # Calculate current Q_tot using main mixer\n",
    "    q_tot_current = mixer(current_agent_qs, gs_b)\n",
    "\n",
    "    # --- Compute Loss and Optimize --- \n",
    "    loss = F.mse_loss(q_tot_current, y)\n",
    "    \n",
    "    optimizer.zero_grad()\n",
    "    loss.backward()\n",
    "    # Gradient clipping (optional, often useful)\n",
    "    # total_norm = torch.nn.utils.clip_grad_norm_([param for net in agent_networks for param in net.parameters()] + \n",
    "    #                                            list(mixer.parameters()), max_norm=1.0)\n",
    "    optimizer.step()\n",
    "\n",
    "    # --- Update Target Networks --- \n",
    "    for i in range(num_agents):\n",
    "        soft_update(target_agent_networks[i], agent_networks[i], tau)\n",
    "    soft_update(target_mixer, mixer, tau)\n",
    "\n",
    "    return loss.item()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Running the QMIX Algorithm\n",
    "\n",
    "### Hyperparameter Setup"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Hyperparameters for QMIX on Custom Multi-Agent Grid World\n",
    "BUFFER_SIZE_QMIX = int(5e4)  # Smaller buffer might be okay for simpler env\n",
    "BATCH_SIZE_QMIX = 64\n",
    "GAMMA_QMIX = 0.99\n",
    "TAU_QMIX = 1e-3           # Soft update factor\n",
    "LR_QMIX = 5e-4            # Learning rate for agent nets and mixer\n",
    "EPSILON_QMIX_START = 1.0\n",
    "EPSILON_QMIX_END = 0.05\n",
    "EPSILON_QMIX_DECAY = 100000 # Decay over N steps\n",
    "MIXING_EMBED_DIM = 32     # Embedding dimension in the mixing network\n",
    "HYPERNET_HIDDEN = 64      # Hidden size for hypernetworks\n",
    "\n",
    "NUM_EPISODES_QMIX = 600\n",
    "MAX_STEPS_PER_EPISODE_QMIX = 100\n",
    "UPDATE_EVERY_QMIX = 4      # Perform update every N environment steps\n",
    "TARGET_UPDATE_FREQ_QMIX = 100 # Steps between target network soft updates (alternative)\n",
    "USE_SOFT_UPDATE = True       # Use soft updates (True) or periodic hard updates (False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Initialization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Initialize Environment\n",
    "env_qmix = MultiAgentGridEnv_QMIX(size=5, num_agents=2)\n",
    "num_agents_qmix = env_qmix.num_agents\n",
    "obs_dim_qmix = env_qmix.observation_dim_per_agent\n",
    "global_state_dim_qmix = env_qmix.global_state_dim\n",
    "action_dim_qmix = env_qmix.action_dim\n",
    "\n",
    "# Initialize Agent Networks and Target Networks\n",
    "agent_networks = [AgentQNetwork(obs_dim_qmix, action_dim_qmix).to(device) for _ in range(num_agents_qmix)]\n",
    "target_agent_networks = [AgentQNetwork(obs_dim_qmix, action_dim_qmix).to(device) for _ in range(num_agents_qmix)]\n",
    "for i in range(num_agents_qmix):\n",
    "    target_agent_networks[i].load_state_dict(agent_networks[i].state_dict())\n",
    "    for p in target_agent_networks[i].parameters(): p.requires_grad = False\n",
    "\n",
    "# Initialize Mixing Network and Target Mixing Network\n",
    "mixer = QMixer(num_agents_qmix, global_state_dim_qmix, MIXING_EMBED_DIM).to(device)\n",
    "target_mixer = QMixer(num_agents_qmix, global_state_dim_qmix, MIXING_EMBED_DIM).to(device)\n",
    "target_mixer.load_state_dict(mixer.state_dict())\n",
    "for p in target_mixer.parameters(): p.requires_grad = False\n",
    "\n",
    "# Collect all parameters for the single optimizer\n",
    "all_params = list(mixer.parameters())\n",
    "for net in agent_networks:\n",
    "    all_params.extend(list(net.parameters()))\n",
    "\n",
    "# Initialize Optimizer\n",
    "optimizer_qmix = optim.Adam(all_params, lr=LR_QMIX)\n",
    "\n",
    "# Initialize Replay Buffer\n",
    "memory_qmix = QMIXReplayBuffer(BUFFER_SIZE_QMIX)\n",
    "\n",
    "# Lists for plotting\n",
    "qmix_episode_rewards = []\n",
    "qmix_episode_losses = []\n",
    "qmix_episode_epsilons = []"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Training Loop"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Starting QMIX Training...\n",
      "Ep 50/600 | Steps: 3981 | Avg Reward: -70.69 | Avg Loss: 0.3158 | Eps: 0.962\n",
      "Ep 100/600 | Steps: 7651 | Avg Reward: -50.70 | Avg Loss: 0.0936 | Eps: 0.927\n",
      "Ep 150/600 | Steps: 10213 | Avg Reward: -32.85 | Avg Loss: 0.0371 | Eps: 0.903\n",
      "Ep 200/600 | Steps: 12701 | Avg Reward: -27.53 | Avg Loss: 0.0442 | Eps: 0.879\n",
      "Ep 250/600 | Steps: 15222 | Avg Reward: -24.79 | Avg Loss: 0.0468 | Eps: 0.855\n",
      "Ep 300/600 | Steps: 17356 | Avg Reward: -19.04 | Avg Loss: 0.0500 | Eps: 0.835\n",
      "Ep 350/600 | Steps: 19198 | Avg Reward: -14.75 | Avg Loss: 0.0539 | Eps: 0.818\n",
      "Ep 400/600 | Steps: 20969 | Avg Reward: -13.01 | Avg Loss: 0.0618 | Eps: 0.801\n",
      "Ep 450/600 | Steps: 22741 | Avg Reward: -13.86 | Avg Loss: 0.0642 | Eps: 0.784\n",
      "Ep 500/600 | Steps: 24157 | Avg Reward: -7.86 | Avg Loss: 0.0676 | Eps: 0.771\n",
      "Ep 550/600 | Steps: 25939 | Avg Reward: -13.20 | Avg Loss: 0.0675 | Eps: 0.754\n",
      "Ep 600/600 | Steps: 27128 | Avg Reward: -5.17 | Avg Loss: 0.0629 | Eps: 0.742\n",
      "Training Finished (QMIX).\n"
     ]
    }
   ],
   "source": [
    "print(\"Starting QMIX Training...\")\n",
    "\n",
    "total_steps_qmix = 0\n",
    "epsilon = EPSILON_QMIX_START\n",
    "\n",
    "for i_episode in range(1, NUM_EPISODES_QMIX + 1):\n",
    "    obs_list_np, global_state_np = env_qmix.reset_qmix()\n",
    "    episode_reward = 0\n",
    "    episode_loss = 0\n",
    "    num_updates_ep = 0\n",
    "\n",
    "    for t in range(MAX_STEPS_PER_EPISODE_QMIX):\n",
    "        # --- Action Selection (Decentralized Epsilon-Greedy) --- \n",
    "        actions_list = []\n",
    "        for i in range(num_agents_qmix):\n",
    "            obs_tensor = torch.from_numpy(obs_list_np[i]).float().to(device)\n",
    "            agent_networks[i].eval() # Eval mode for selection\n",
    "            with torch.no_grad():\n",
    "                q_values = agent_networks[i](obs_tensor)\n",
    "            agent_networks[i].train() # Back to train mode\n",
    "            \n",
    "            if random.random() < epsilon:\n",
    "                action = random.randrange(action_dim_qmix)\n",
    "            else:\n",
    "                action = q_values.argmax().item()\n",
    "            actions_list.append(action)\n",
    "        \n",
    "        # --- Environment Interaction --- \n",
    "        next_obs_list_np, next_global_state_np, reward, done = env_qmix.step_qmix(actions_list)\n",
    "        \n",
    "        # --- Store Experience --- \n",
    "        memory_qmix.push(obs_list_np, actions_list, reward, next_obs_list_np, \n",
    "                           global_state_np, next_global_state_np, done)\n",
    "\n",
    "        # Update current states/obs\n",
    "        obs_list_np = next_obs_list_np\n",
    "        global_state_np = next_global_state_np\n",
    "        \n",
    "        episode_reward += reward\n",
    "        total_steps_qmix += 1\n",
    "\n",
    "        # --- Update Networks --- \n",
    "        if len(memory_qmix) > BATCH_SIZE_QMIX and total_steps_qmix % UPDATE_EVERY_QMIX == 0:\n",
    "            loss = update_qmix(\n",
    "                memory_qmix, BATCH_SIZE_QMIX,\n",
    "                agent_networks, target_agent_networks,\n",
    "                mixer, target_mixer,\n",
    "                optimizer_qmix,\n",
    "                GAMMA_QMIX, TAU_QMIX if USE_SOFT_UPDATE else 1.0, # Tau=1.0 if hard update\n",
    "                num_agents_qmix, action_dim_qmix\n",
    "            )\n",
    "            episode_loss += loss\n",
    "            num_updates_ep += 1\n",
    "            \n",
    "            # --- Target Network Update Logic --- \n",
    "            if not USE_SOFT_UPDATE and total_steps_qmix % TARGET_UPDATE_FREQ_QMIX == 0:\n",
    "                # Hard update periodically\n",
    "                for i in range(num_agents_qmix):\n",
    "                    target_agent_networks[i].load_state_dict(agent_networks[i].state_dict())\n",
    "                target_mixer.load_state_dict(mixer.state_dict())\n",
    "            # Soft update happens inside update_qmix if USE_SOFT_UPDATE is True\n",
    "\n",
    "        # Decay epsilon (step-based decay)\n",
    "        epsilon = max(EPSILON_QMIX_END, EPSILON_QMIX_START - total_steps_qmix / EPSILON_QMIX_DECAY * (EPSILON_QMIX_START - EPSILON_QMIX_END))\n",
    "\n",
    "        if done:\n",
    "            break\n",
    "            \n",
    "    # --- End of Episode --- \n",
    "    qmix_episode_rewards.append(episode_reward)\n",
    "    qmix_episode_losses.append(episode_loss / num_updates_ep if num_updates_ep > 0 else 0)\n",
    "    qmix_episode_epsilons.append(epsilon)\n",
    "\n",
    "    # Print progress\n",
    "    if i_episode % 50 == 0:\n",
    "        avg_reward = np.mean(qmix_episode_rewards[-50:])\n",
    "        avg_loss = np.mean(qmix_episode_losses[-50:])\n",
    "        print(f\"Ep {i_episode}/{NUM_EPISODES_QMIX} | Steps: {total_steps_qmix} | Avg Reward: {avg_reward:.2f} | Avg Loss: {avg_loss:.4f} | Eps: {epsilon:.3f}\")\n",
    "\n",
    "print(\"Training Finished (QMIX).\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Visualizing the Learning Process\n",
    "\n",
    "Plot episode rewards, TD loss, and epsilon decay."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1800x400 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plotting results for QMIX\n",
    "plt.figure(figsize=(18, 4))\n",
    "\n",
    "# Episode Rewards\n",
    "plt.subplot(1, 3, 1)\n",
    "plt.plot(qmix_episode_rewards)\n",
    "plt.title('QMIX GridWorld: Episode Rewards (Shared)')\n",
    "plt.xlabel('Episode')\n",
    "plt.ylabel('Total Reward')\n",
    "plt.grid(True)\n",
    "if len(qmix_episode_rewards) >= 50:\n",
    "    rewards_ma_qmix = np.convolve(qmix_episode_rewards, np.ones(50)/50, mode='valid')\n",
    "    plt.plot(np.arange(len(rewards_ma_qmix)) + 49, rewards_ma_qmix, label='50-episode MA', color='orange')\n",
    "    plt.legend()\n",
    "\n",
    "# TD Loss\n",
    "plt.subplot(1, 3, 2)\n",
    "plt.plot(qmix_episode_losses)\n",
    "plt.title('QMIX GridWorld: Avg TD Loss / Episode')\n",
    "plt.xlabel('Episode')\n",
    "plt.ylabel('Avg MSE Loss')\n",
    "plt.yscale('log') # Use log scale if loss varies greatly\n",
    "plt.grid(True, which='both')\n",
    "if len(qmix_episode_losses) >= 50:\n",
    "    loss_ma_qmix = np.convolve(qmix_episode_losses, np.ones(50)/50, mode='valid')\n",
    "    # Avoid plotting log(0) or negative values if loss goes very low\n",
    "    valid_indices = np.where(loss_ma_qmix > 1e-8)[0] \n",
    "    if len(valid_indices) > 0:\n",
    "        plt.plot(np.arange(len(loss_ma_qmix))[valid_indices] + 49, loss_ma_qmix[valid_indices], label='50-episode MA', color='orange')\n",
    "        plt.legend()\n",
    "\n",
    "# Epsilon\n",
    "plt.subplot(1, 3, 3)\n",
    "plt.plot(qmix_episode_epsilons)\n",
    "plt.title('QMIX: Epsilon Decay')\n",
    "plt.xlabel('Episode')\n",
    "plt.ylabel('Epsilon')\n",
    "plt.grid(True)\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Analysis of QMIX Learning Curves (GridWorld - Shared Reward):**\n",
    "\n",
    "1.  **Episode Rewards (Shared):**\n",
    "    *   **Observation:** The learning process shows a clear, albeit slow and noisy, improvement trend. The total shared reward per episode starts very low (around -120) and is extremely volatile. The 50-episode moving average (orange line) illustrates a distinct upward climb, particularly noticeable from episode 100 onwards, eventually reaching a plateau fluctuating around -10 to -20 by episode 500-600. Despite the average improvement, the raw episode rewards (blue line) maintain a very high degree of variance throughout the entire 600 episodes, frequently swinging between near-zero values and significantly negative outcomes.\n",
    "    *   **Interpretation:** This indicates that the QMIX agent team is learning to coordinate towards achieving higher shared rewards, moving significantly away from the initial poor performance. The gradual climb of the moving average confirms successful learning over a longer timescale. However, the persistent high variance is characteristic of challenges in multi-agent coordination. QMIX relies on individual agents acting greedily based on their local Q-values, combined via a monotonic mixing network. While this structure aids learning, finding consistently optimal *joint* actions remains difficult, leading to episodes where uncoordinated or suboptimal choices result in poor rewards, hence the volatility.\n",
    "\n",
    "2.  **Avg TD Loss / Episode:**\n",
    "    *   **Observation:** Plotted on a logarithmic scale, the average TD (Temporal Difference) loss for the mixing network shows a very pronounced drop within the first 100 episodes, decreasing by roughly two orders of magnitude. After this rapid initial decrease, the loss stabilizes at a low average level (around 10^-2 or 0.01), exhibiting moderate fluctuations for the remainder of the training. The moving average confirms this convergence pattern.\n",
    "    *   **Interpretation:** This plot is crucial as it reflects how well the centralized mixing network learns to approximate the joint action-value function (Q_tot) based on the individual agents' Q-values (Q_i). The sharp initial drop signifies that the mixing network quickly becomes proficient at representing the team's value function based on the agents' current estimates. The subsequent stabilization at a low value indicates that the value function learning component of QMIX is working effectively and providing a consistent basis for selecting joint actions, even while the agents' policies (and thus their Q_i values) might still be evolving.\n",
    "\n",
    "3.  **Epsilon Decay:**\n",
    "    *   **Observation:** The exploration parameter, epsilon, follows a predefined decay schedule, decreasing steadily from 1.0 at the beginning to approximately 0.74 by episode 600. The decay appears relatively slow and potentially linear or mildly exponential over this period.\n",
    "    *   **Interpretation:** This shows the standard epsilon-greedy exploration strategy used with Q-learning based methods. Starting with full exploration (epsilon=1.0), the agents gradually reduce their tendency to take random actions, increasingly exploiting the learned Q-values. The relatively high epsilon value remaining even at episode 600 suggests that substantial exploration is maintained throughout the depicted training run. This continued exploration likely contributes to the high variance observed in the rewards plot, as agents frequently deviate from the current greedy policy. While important for discovering better strategies, this slow decay might also hinder faster convergence to a fully stable, exploitative policy.\n",
    "\n",
    "**Overall Conclusion:**\n",
    "QMIX demonstrates successful learning on the multi-agent GridWorld task, significantly improving the shared team reward over 600 episodes. The core mechanism, learning individual Q-functions and combining them via a well-converging mixing network (indicated by the low TD loss), proves effective for value estimation. However, similar to MADDPG, the overall team performance remains highly volatile, suggesting that achieving consistent, optimal coordination based on the decomposed value functions is challenging. The slow epsilon decay likely contributes to this ongoing variance by maintaining a significant level of exploration throughout the training period shown."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Analyzing the Learned Policies (Testing)\n",
    "\n",
    "Test the agents acting decentrally using the greedy policy derived from their learned $Q_i$ networks."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "--- Testing QMIX Agents (5 episodes) ---\n",
      "Test Episode 1: Reward = 8.65, Length = 4\n",
      "Test Episode 2: Reward = 8.65, Length = 4\n",
      "Test Episode 3: Reward = 8.65, Length = 4\n",
      "Test Episode 4: Reward = 8.65, Length = 4\n",
      "Test Episode 5: Reward = 8.65, Length = 4\n",
      "--- Testing Complete. Average Reward: 8.65 ---\n"
     ]
    }
   ],
   "source": [
    "def test_qmix_agents(agent_nets: List[AgentQNetwork], \n",
    "                     env_instance: MultiAgentGridEnv_QMIX, \n",
    "                     num_episodes: int = 5, \n",
    "                     seed_offset: int = 6000) -> None:\n",
    "    \"\"\" Tests the trained QMIX agents acting decentrally (greedy). \"\"\"\n",
    "    print(f\"\\n--- Testing QMIX Agents ({num_episodes} episodes) ---\")\n",
    "    all_episode_rewards = []\n",
    "\n",
    "    for i in range(num_episodes):\n",
    "        obs_list_np, _ = env_instance.reset_qmix()\n",
    "        episode_reward = 0\n",
    "        done = False\n",
    "        t = 0\n",
    "\n",
    "        while not done and t < MAX_STEPS_PER_EPISODE_QMIX:\n",
    "            actions_list = []\n",
    "            for agent_id in range(env_instance.num_agents):\n",
    "                obs_tensor = torch.from_numpy(obs_list_np[agent_id]).float().to(device)\n",
    "                agent_nets[agent_id].eval() # Set to eval mode\n",
    "                with torch.no_grad():\n",
    "                    q_values = agent_nets[agent_id](obs_tensor)\n",
    "                    action = q_values.argmax().item() # Greedy action\n",
    "                actions_list.append(action)\n",
    "            \n",
    "            # Step environment\n",
    "            next_obs_list_np, _, reward, done = env_instance.step_qmix(actions_list)\n",
    "            \n",
    "            # Update observations\n",
    "            obs_list_np = next_obs_list_np\n",
    "            episode_reward += reward\n",
    "            t += 1\n",
    "            \n",
    "        print(f\"Test Episode {i+1}: Reward = {episode_reward:.2f}, Length = {t}\")\n",
    "        all_episode_rewards.append(episode_reward)\n",
    "\n",
    "    print(f\"--- Testing Complete. Average Reward: {np.mean(all_episode_rewards):.2f} ---\")\n",
    "\n",
    "# Run test episodes\n",
    "test_qmix_agents(agent_networks, env_qmix, num_episodes=5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Common Challenges and Extensions of QMIX\n",
    "\n",
    "**Challenge: Limited Representational Capacity**\n",
    "*   **Problem:** The monotonicity constraint ($\\partial Q_{tot} / \\partial Q_i \\ge 0$) limits the class of joint action-value functions that QMIX can represent. It cannot represent scenarios where one agent's high utility might need to be sacrificed for the greater team good in certain states (requiring non-monotonic mixing).\n",
    "*   **Solutions**:\n",
    "    *   **QTRAN:** Extends QMIX to handle a broader class of factorizations.\n",
    "    *   **Weighted QMIX:** Introduces state-dependent weights that can be negative, relaxing strict monotonicity.\n",
    "    *   **QPLEX:** Uses a dueling architecture to achieve a more general value decomposition.\n",
    "\n",
    "**Challenge: Global State Requirement**\n",
    "*   **Problem:** The mixing network requires access to the global state $x$ during centralized training. This might not always be available or might be very high-dimensional.\n",
    "*   **Solutions**:\n",
    "    *   **Approximate Global State:** Use aggregated information or communication between agents to approximate the global state.\n",
    "    *   **Alternative Methods:** Use algorithms that rely less heavily on a compact global state representation.\n",
    "\n",
    "**Challenge: Exploration in Multi-Agent Settings**\n",
    "*   **Problem:** Coordinated exploration can be difficult. Simple $\\epsilon$-greedy on individual agents might not be sufficient to discover complex joint strategies.\n",
    "   **Solutions**:\n",
    "    *   **More Sophisticated Exploration:** Techniques like MAVEN introduce latent variables to encourage diverse joint exploration strategies.\n",
    "    * **Parameter Noise:** Add noise to agent network parameters.\n",
    "\n",
    "**Challenge: Hyperparameter Sensitivity**\n",
    "*   **Problem:** Like many DRL algorithms, QMIX performance depends on careful tuning of learning rates, target update frequency/rate, buffer/batch sizes, and exploration parameters.\n",
    "   **Solution:** Systematic tuning and using common successful settings as starting points.\n",
    "\n",
    "**Extensions:**\n",
    "- **VDN (Value Decomposition Networks):** A simpler predecessor where $Q_{tot} = \\sum_i Q_i$. Lacks state-dependent mixing.\n",
    "- **QTRAN, QPLEX, Weighted QMIX:** Relax the monotonicity constraint for greater representational power.\n",
    "- **MAVEN:** Improves exploration by learning a latent exploration space.\n",
    "\n",
    "## Conclusion\n",
    "\n",
    "QMIX is a highly influential value-based algorithm for cooperative multi-agent reinforcement learning. Its core contribution is the monotonic value function factorization, enabling stable centralized training and efficient decentralized execution. By learning individual agent Q-functions and combining them non-linearly through a state-dependent mixing network that enforces the IQL principle ($\\partial Q_{tot}/\\partial Q_i \\ge 0$), QMIX effectively addresses the credit assignment problem in many cooperative tasks.\n",
    "\n",
    "While its representational capacity is limited by the monotonicity constraint, QMIX offers significant advantages in scalability (compared to learning a full joint Q-function) and provides a strong foundation for many subsequent value decomposition methods in MARL. Its success, particularly in benchmarks like SMAC, highlights the power of structured value function decomposition for cooperative multi-agent problems."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": ".venv-all-rl-algos",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
